# -*- coding: utf-8 -*-

from abc import ABCMeta, abstractmethod

class BaseBroker(object):
    
    __metaclss__ = ABCMeta
    
    @abstractmethod
    def create_market_order(self,ticker,action,quantity):

        raise NotImplementedError("Should implement create_market_order()")

    @abstractmethod
    def create_limit_order(self,ticker,action,quantity,limit_price):

        raise NotImplementedError("Should implement create_limit_order()")

    @abstractmethod
    def submit_order(self,order):

        raise NotImplementedError("Should implement submit_order()")

    @abstractmethod
    def get_positions_from_broker(self):

        raise NotImplementedError("Should implement get_position_from_broker()")

    @abstractmethod
    def get_cash(self):
        raise NotImplementedError("Should implement get_cash()")

